const fp = require('lodash/fp')
const {Maybe,Container} = require('./support')

console.log('------1-------');
let maybe = Maybe.of([5,6,1])
let ex1 = (y) => {
    return maybe.map(x => fp.map(fp.add(y),x))
}
console.log(ex1(1));

console.log('------2-------');
let xs = Container.of(['do','ray','me','fa','so','la','ti','do'])
let ex2 = () =>{
    return xs.map(x=> fp.first(x))
}
console.log(ex2());

console.log('------3-------');
let safeProp = fp.curry(function(x, o){
    return Maybe.of(o[x])
})
let user = {id:2,name:'Albert'}
let ex3 = () => {
    return safeProp('name',user).map(x=>fp.first(x))
}
console.log(ex3());

console.log('------4-------');
let ex4 = function(n){
    return Maybe.of(n).map(x=>(parseInt(x)));
}
console.log(ex4('5'));
